/*
 * Copyright (c) gitee.com/jiandong001.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */


import List from '@ohos.util.List';

import { WritableMap } from './WritableMap';
import { ReadableMap } from './ReadableMap';
import { ReadableArray } from './ReadableArray';
import { View } from '../uimanager/View';
import { JSIModule } from './JSIModule';

export interface UIManager extends JSIModule {

    //    @UiThread
//    addRootView<T extends View>(var1: T , var2: WritableMap, var3: string): number

    //@AnyThread
//    startSurface<T extends View>(var1: T , var2: string, var3: WritableMap, var4: number, var5: number): number

    //@AnyThread
//    stopSurface(var1: number): void;

    //@UiThread
    //@ThreadConfined("UI")
//    updateRootLayoutSpecs(var1: number, var2: number, var3: number, var4: number, var5: number): void;

//    dispatchCommand(var1: number, var2: number, var3?: ReadableArray): void;

    dispatchCommand(var1: number, var2: string, var3?: ReadableArray): void;

//    getEventDispatcher<T>(): T;

    //@UiThread
    //@ThreadConfined("UI")
//    synchronouslyUpdateViewOnUIThread(var1: number, var2: ReadableMap ): void;

//    sendAccessibilityEvent(var1: number, var2: number): void;
//
//    addUIManagerEventListener(var1: UIManagerListener): void;
//
//    removeUIManagerEventListener(var1: UIManagerListener ): void;

//    resolveView(var1: number): View

//    /** @deprecated */
//    //@Deprecated
//    void receiveEvent(var1: number, var2: string, var3?: WritableMap );

//    receiveEvent(var1: number, var2: number, var3: string, var4?: WritableMap): void;

    /** @deprecated */
    //@Deprecated
    //@Nullable
//    resolveCustomDirectEventName(var1?: string): string;

    /** @deprecated */
    //@Deprecated
//    preInitializeViewManagers(var1: List<string>): void;
}
